1. Field of the Invention
This invention relates to computer systems and, more particularly, to client/server systems employing stateless clients.
2. Description of the Related Art
One common architecture for providing computing services to a number of users is the client/server architecture. Generally speaking, client/server architectures provide one or more server computer systems, each of which may be configured to provide some type of computing service to users via one or more client computer systems. Computing services provided by servers on behalf of clients may include email services, web hosting/internet access, database services, or any other type of software application or service. Often, multiple client systems will share access to a smaller number of server systems.
In typical client/server architectures, a given server system is more computationally powerful than a given client system. For example, a server system may typically include faster and/or multiple processors, more system memory, greater storage resources, greater storage/network bandwidth, etc. than a typical client system. However, in many client/server architectures, client systems are structurally similar to server systems, in that both types of systems may include local processing and storage capability, and both types of systems may be capable of running operating systems and application programs.
In some instances, the number of client systems in a given installation may greatly exceed the number of server systems, for example in enterprise environments where the services to be provided are not individually resource-intensive (e.g., email, web browsing, office applications) but are provided to a large number of users. Providing each user in such an installation with a client system including a processor, local storage, an operating system, and applications may result in substantial administrative costs, as such systems typically need to be upgraded, repaired, patched, or replaced over time. For example, security or functionality patches may be frequently issued for some operating systems, and preserving system integrity and availability may require that such patches are applied to each client system in a timely fashion. In turn, such patching may require individual intervention on the part of a system administrator or a complex automated system for centrally managing the configuration of client systems.
Alternatively, a client/server installation may employ stateless client systems. Typically, stateless client systems lack inbuilt application processing or storage resources. Rather than execute an operating system or applications, stateless clients may be configured to allow a user to access an operating system and applications running on a server system. In such an installation, administrative costs may be greatly reduced, as individual client patching and upgrading may be generally unnecessary, and simpler stateless client design may increase client reliability.
Users of client/server systems may often have the need or desire to be able to use removable or portable storage media with their applications. For example, users may wish to access data stored on optical or magnetic disks or other types of storage media. However, typical stateless clients do not include support for local storage devices. In particular, since typical stateless clients do not run operating system software locally, they do not provide the capability of locally interfacing to storage devices.